package main

import "fmt"

//Go语言泛型

func main() {
	//useGenericTypeList()

	useGenericSum()
}

// 使用泛型List
func useGenericTypeList() {
	//创建泛型结构体对象,并指定类型
	list := LinkedList[int]{}

	//调用对象方法
	list.Add(0, 1)
	list.Add(1, 2)
	list.Append(3)
	list.Append(4)
	list.Delete(0)

	//类型参数指定了int类型,因此其他类型无法通过编译
	//list.Append("6");
}

// 使用泛型的Sum方法
func useGenericSum() {
	//int类型
	intVals := []int{1, 2, 3, 4, 5}
	intSum := Sum(intVals)
	println("intSum: ", intSum)

	//float64类型
	float64Vals := []float64{1.1, 2, 2, 3.3, 4.4, 5.5}
	float64Sum := Sum(float64Vals)
	fmt.Printf("intSum: %.2f\n", float64Sum)
}
